#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=62,M=3605;
int n,m,tot,top,bj[N],st[N],h[N],to[M],ne[M];
void add(int x,int y) {to[++tot]=y,ne[tot]=h[x],h[x]=tot;}
#define cp(x) (x<=n?x+n:x-n)
int dfs(int x) {
	if(bj[x]==1) return 1;
	if(bj[x]==-1) return 0;
	bj[x]=1,bj[cp(x)]=-1,st[++top]=x;
	for(int i=h[x];i;i=ne[i]) if(!dfs(to[i])) return 0;
	return 1;
}
void work() {
	for(int i=1;i<=n;++i) {
		if(bj[i]) continue;
		top=0;
		if(!dfs(i)) {
			while(top) bj[st[top]]=bj[cp(st[top])]=0,--top;
			if(!dfs(cp(i))) {puts("bad luck");return;}
		}
	}
	for(int i=1;i<n;++i)
		if(bj[i]==-1) printf("%dh ",i);
		else printf("%dw ",i);
	puts("");
}
int main()
{
	int b1,b2;char c1,c2;
	while(~scanf("%d%d",&n,&m)&&(n+m)) {
		tot=0;for(int i=1;i<=n*2;++i) h[i]=bj[i]=0;
		for(int i=1;i<=m;++i) {
			scanf("%d%c%d%c",&b1,&c1,&b2,&c2);
			if(b1==0) b1=n; if(b2==0) b2=n;
			if(c1=='h'&&c2=='h') add(b1,b2+n),add(b2,b1+n);
			else if(c1=='h'&&c2=='w') add(b1,b2),add(b2+n,b1+n);
			else if(c1=='w'&&c2=='h') add(b1+n,b2+n),add(b2,b1);
			else add(b1+n,b2),add(b2+n,b1);
		}
		add(2*n,n),work();
	}
	return 0;
}
